package wdstruct

//I_DoduleLink 双链表句柄接口
type I_DoduleLink_hand interface {
	GetLen() int32
	GetHead() I_DoduleLink_node
	GetTail() I_DoduleLink_node

	AddToHead(interface{}) I_DoduleLink_node
	AddToTail(interface{}) I_DoduleLink_node

	DeleteFromHead() bool
	DeletoFromTail() bool
}

//I_DoduleLink 双链表节点接口
type I_DoduleLink_node interface {
	GetData() interface{}
	GetPrev() I_DoduleLink_node
	GetNext() I_DoduleLink_node
	IsNull() bool //false:不为空 true：为空
}

//I_Deque_Hand 双端队列接口
type I_Deque_Hand interface {
	GetLength() int32
	PushToHead(data interface{})
	PushToTail(data interface{})
	PullFromHead() interface{}
	PullFromTail() interface{}
}

//对象池需要实现的方法
type I_Object_Pool interface {
	New() interface{}
	Recycle(interface{})
}

type I_Object_Pool_Hand interface {
	Get() interface{}
	Give(interface{})
}
